package cn.zyq.demo.beans.user;

import cn.zyq.demo.system.common.BaseBean;
import cn.zyq.demo.system.common.Operator;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.*;
import java.io.Serializable;
import java.math.BigDecimal;


/**
 * 用户表
 * 2023-04-02 09:09:22
 */
@Entity
@Table(name = "`user`")
@Data
public class User extends BaseBean implements Operator, Serializable {

    private static final long serialVersionUID = 802047333499671369L;
    /**
     * 主键id，用于关联
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY, generator = "JDBC")
    @Column(name = "`userID`")
    @ApiModelProperty("主键id，用于关联")
    private Integer userID;

    /**
     * 登录凭证，每次重新登录，都更换
     */
    @Column(name = "`token`")
    @ApiModelProperty("登录凭证，每次重新登录，都更换")
    private String token;

    /**
     * 邀请人ID
     */
    @Column(name = "`inviteUserID`")
    @ApiModelProperty("邀请人ID")
    private Integer inviteUserID;

    /**
     * 邀请数量
     */
    @Column(name = "`inviteNum`")
    @ApiModelProperty("邀请数量")
    private Integer inviteNum;

    /**
     * 手机号区号
     */
    @Column(name = "`areaCode`")
    @ApiModelProperty("手机号区号")
    private String areaCode;

    /**
     * 手机号
     */
    @Column(name = "`phone`")
    @ApiModelProperty("手机号")
    private String phone;

    /**
     * 支付宝用户id
     */
    @Column(name = "`aliUserId`")
    @ApiModelProperty("支付宝用户id")
    private String aliUserId;

    /**
     * 微信公众号openid
     */
    @Column(name = "`wxMpOpenid`")
    @ApiModelProperty("微信公众号openid")
    private String wxMpOpenid;
    /**
     * 微信小程序openid
     */
    @Column(name = "`wxMaOpenid`")
    @ApiModelProperty("微信小程序openid")
    private String wxMaOpenid;
    /**
     * 微信AppOpenID
     */
    @Column(name = "`wxAppOpenid`")
    @ApiModelProperty("微信AppOpenID")
    private String wxAppOpenid;

    /**
     * 性别 0：未知、1：男、2：女
     */
    @Column(name = "`gender`")
    @ApiModelProperty("性别 0：未知、1：男、2：女")
    private Integer gender;

    /**
     * 昵称
     */
    @Column(name = "`nickName`")
    @ApiModelProperty("昵称")
    private String nickName;

    /**
     * 头像
     */
    @Column(name = "`avatar`")
    @ApiModelProperty("头像")
    private String avatar;

    /**
     * 用户编码
     */
    @Column(name = "`code`")
    @ApiModelProperty("用户编码")
    private String code;

    /**
     * 用户钱包
     */
    @Column(name = "`wallet`")
    @ApiModelProperty("用户钱包")
    private Integer wallet;

    /**
     * 当前所在位置
     */
    @Column(name = "`nowPosition`")
    @ApiModelProperty("当前所在位置")
    private String nowPosition;

    /**
     * 当前所在经度
     */
    @Column(name = "`longitude`")
    @ApiModelProperty("当前所在经度")
    private Double longitude;

    /**
     * 当前所在纬度
     */
    @Column(name = "`latitude`")
    @ApiModelProperty("当前所在纬度")
    private Double latitude;

    /**
     * 姓名
     */
    @Column(name = "`uname`")
    @ApiModelProperty("姓名")
    private String uname;

    /**
     * 身份证编号
     */
    @Column(name = "`idCard`")
    @ApiModelProperty("身份证编号")
    private String idCard;

    /**
     * 身份证图片地址-人像面
     */
    @Column(name = "`idCard1Picture`")
    @ApiModelProperty("身份证图片地址-人像面")
    private String idCard1Picture;

    /**
     * 身份证图片地址-国徽面
     */
    @Column(name = "`idCard2Picture`")
    @ApiModelProperty("身份证图片地址-国徽面")
    private String idCard2Picture;

    /**
     * 所在区域，如：/四川省/成都市/龙泉驿区/
     */
    @Column(name = "`region`")
    @ApiModelProperty("所在区域，如：/四川省/成都市/龙泉驿区/")
    private String region;

    /**
     * 详细地址
     */
    @Column(name = "`fullAddress`")
    @ApiModelProperty("详细地址")
    private String fullAddress;

    /**
     * 出生日期
     */
    @Column(name = "`birthDate`")
    @ApiModelProperty("出生日期")
    private String birthDate;
    /**
     * 省
     */
    @Column(name = "`province`")
    @ApiModelProperty("省")
    private String province;
    /**
     * 市
     */
    @Column(name = "`city`")
    @ApiModelProperty("市")
    private String city;
    /**
     * 县
     */
    @Column(name = "`district`")
    @ApiModelProperty("县")
    private String district;
    /**
     * 是否禁用（0正常，1禁用）
     */
    @Column(name = "`state`")
    @ApiModelProperty("是否禁用（0正常，1禁用）")
    private Boolean state;

}
